// index.ts
import { Context, Schema, Logger } from 'koishi';
import { MESSSAGE_FORM } from './type';
import { day60s } from './day60s';
import { platform } from 'os';
import { channel } from 'diagnostics_channel';

export const name = 'zeapi-trending-news';
export const PLUGIN_NAME = name;

export const POWERED_BY_STR = 'Powered by https://zeapi.ink'

export const inject = {
  required: ["http", "database", "puppeteer"]
};


export const Config = Schema.intersect([

/*
  https://koishi.chat/zh-CN/schema/advanced/union-tagged-1.html
  Schema.object({
    enabled: Schema.boolean().default(false),
  }).description('基础配置'),
  Schema.union([
    Schema.object({
      enabled: Schema.const(true).required(),
      foo: Schema.number().description('请输入一个数值。'),
      bar: Schema.string().description('请输入一个字符串。'),
    }),
    Schema.object({}),
  ]),
*/

  Schema.object({
    enableDays60: Schema.boolean()
      .default(false)
      .description('是否启用每日60s早报'),
  }).description('是否启用每日60s早报捏？'),

  Schema.union([
    Schema.object({
      enableDays60: Schema.const(true).required(),
      day60s: Schema.object({
        baseUrl: Schema.string()
          .default('https://zeapi.ink/v1/api/day60s')
          .role('link').disabled()
          .description('后端地址'),
        // curl -X GET https://zeapi.ink/v1/api/day60
        enableQuoteSessionMessage: Schema.boolean()
          .default(true)
          .description('发送的消息是否引用触发指令的session会话消息(onebot合并转发不适用)'),
          messageForm: Schema.union([
            Schema.const(MESSSAGE_FORM.TEXT).description('文本消息(可以选择夹带google搜索的图片)'),
            // Schema.const(MESSSAGE_FORM.TEXT_WITH_IMAGE).description('图文消息段混合消息'),
            Schema.const(MESSSAGE_FORM.IMAGE).description('图片消息(可以选择夹带google搜索的图片)'),
            Schema.const(MESSSAGE_FORM.FORWARD).description('合并转发消息(可以选择夹带google搜索的图片)'),
          ]).role('radio'),
        commandWithGoogleImage: Schema.boolean()
            .default(true)
            .description('指令触发时，bot发送的消息是否夹带google搜索出来的图片'),
        enablePuppeteerDarkImageMode: Schema.boolean()
            .default(true)
            .description('图片消息模式下，是否启用黑暗模式'),
        enableCronTask: Schema.boolean()
          .default(true)
          .description('是否启用定时发送早报的任务'),
        cronTaskChannelList: Schema.array(
          Schema.object({
            platform: Schema.string().default('onebot').description('平台名(如onebot)'),
            channelId: Schema.string().description('频道ID(如QQ群号)'),
            cronExp: Schema.string().default(`0 9 * * *`).description('cron表达式'),
            messageForm: Schema.union([
              Schema.const(MESSSAGE_FORM.TEXT).description('文本消息(可以选择夹带google搜索的图片)'),
              // Schema.const(MESSSAGE_FORM.TEXT_WITH_IMAGE).description('图文消息段混合消息'),
              Schema.const(MESSSAGE_FORM.IMAGE).description('图片消息(可以选择夹带google搜索的图片)'),
              Schema.const(MESSSAGE_FORM.FORWARD).description('合并转发消息(可以选择夹带google搜索的图片)'),
            ]).description('消息格式'),
            withGoogleImage: Schema.boolean().default(true).description('定时任务触发时，bot发送的消息是否带google图'),
          })
        ).role('table')
      }).description('每日60s早报相关配置')
    }),
    Schema.object({})
  ]),

  
  Schema.object({
    googleApi: Schema.object({
      enabled: Schema.boolean()
        .default(true)
        .description('是否启用每日60s早报'),
      baseUrl: Schema.string()
        .default('http://192.168.31.84:8902')
        .role('link')
        .description('Google API 基础地址'),
      apiKey: Schema.string()
        .description('Google API 密钥 https://developers.google.com/custom-search/v1/overview?hl=zh-cn'),
      searchEngineId: Schema.string()
        .description('Google 搜索引擎 ID https://programmablesearchengine.google.com/controlpanel/all?hl=zh-cn')
    })
  }).description('google-api后端相关配置'),

])



export function apply(ctx: Context, config) {

  if ( config.enableDays60 )
    day60s(ctx, config);

}
